package com.yunzhong.appointment.mapper;


import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;

import com.yunzhong.appointment.entity.SysUserRole;

public interface SysUserRoleMapper {
    int deleteByPrimaryKey(String urId);

    int insert(SysUserRole record);

    int insertSelective(SysUserRole record);

    SysUserRole selectByPrimaryKey(String urId);

    int updateByPrimaryKeySelective(SysUserRole record);

    int updateByPrimaryKey(SysUserRole record);
    /**
     * 
     * @methodName removeByUserId
     * @description 根据用户主键删除用户角色表中数据
     * @author 石洪刚
     * @time 2017年10月5日 下午7:34:38
     * @param id
     */
    @Delete("delete from sys_user_role where user_id = #{id}")
	void removeByUserId(String id);
    
    /**
     * 
     * @methodName deleteByUserId
     * @description 删除用户的角色信息
     * @author 石洪刚
     * @time 2017年10月6日 下午2:29:38
     * @param userId
     */
    @Delete("delete from sys_user_role where user_id = #{userId}")
	void deleteByUserId(String userId);
    /**
     * 
     * @methodName getDocRoleCountByUserId
     * @description 根据用户主键查询关联的医生角色的总数
     * @author 石洪刚
     * @time 2017年10月30日 上午8:53:52
     * @param userId
     * @return
     */
    @Select("select count(*) from sys_user_role where user_id = #{userId} "
    		+ "and role_id = (select role_id from sys_role where role_name = 'doctor')")
	int getDocRoleCountByUserId(String userId);
    /**
     * 
     * @methodName removeByRoleId
     * @description 根据角色外键删除用户角色外键
     * @author 石洪刚
     * @time 2017年11月13日 下午3:47:03
     * @param id
     */
    @Delete("delete from sys_user_role where role_id = #{id}")
	void removeByRoleId(String id);
}